package controllers;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import play.mvc.Controller;

import models.Usuario;
import models.Categoria;



public class alterarUsuario extends Application {

	private static Connection conexao;
	private static Statement comando;
	
	
	
	/***********************************************************************************/
	
	protected static void conectar() throws SQLException {  
		try {
			Class.forName("org.postgresql.Driver");
		} catch (ClassNotFoundException e) {
		}

			conexao = DriverManager.getConnection(  
			        "jdbc:postgresql://localhost:5432/SGRv2",  
			        "postgres",  
			        "senha");
		
			comando =  conexao.createStatement();
	}

	/***********************************************************************************/
	
	public static void alterarUsuario() throws SQLException {
		
		List<Usuario> monitores = Usuario.recuperarPessoas();
		
		List<Categoria> tipos = Categoria.Categorias(1);
		
		List<Categoria> habilitacoes = Categoria.Categorias(2);
		
		
		
		render(monitores, tipos, habilitacoes);
	}
	
	/***********************************************************************************/
	
	public static void alterarUsuario(String marcador) throws SQLException {
				
		String idusuario = "";
		int x = 0;
		try
		{		
			idusuario =  request.querystring.toString();

			idusuario = idusuario.substring(5);
			x = Integer.parseInt(idusuario);
			
		}
		catch (Exception e)
		{
			
		}
		
		 if(x > 0)
		 {
				Usuario novo = new Usuario();
			 
				novo = recuperarPessoa(x);
				
				String nome = novo.getnome(); 
				String datanascimento = novo.getdatanascimento() ;
			    String fone = novo.getfone();
			    String celular = novo.getcelular();
			    String email = novo.getemail();
			    String rua = novo.getrua();
			    String bairro = novo.getbairro();
			    int numeroendereco = novo.getnumeroendereco();
			    String cpf = novo.getcpf();
			    String cep = novo.getcep();
			    int idhabilitacao = novo.getidhabilitacao();
			    int idtipo = novo.getidtipo();
			    int idmonitor = novo.getidmonitor();
			    int idadministrador = novo.getidadministrador();
				String alterar = "true";
			    
				List<Usuario> monitores = Usuario.recuperarPessoas();
				
				List<Categoria> tipos = Categoria.Categorias(1);
				
				List<Categoria> habilitacoes = Categoria.Categorias(2);
				
				
				
				render( tipos, monitores, habilitacoes, idusuario, alterar,  nome, datanascimento, fone, celular, email, rua, bairro, numeroendereco, cpf, cep, idhabilitacao, idtipo, idmonitor, idadministrador);
		 }
		 else
		 {
			visualizarUsuarios.visualizarUsuarios();
		 }
	}	
	
	/***********************************************************************************/
	
	public static void alterar(String idusuario, String nomeusuario, String CPF, String Data_Nascimento, String Telefone, String Celular, String Email, int Tipo, int Habilitacao, int Monitor, int Administrador, String Cep, String Logradouro, int Numero, String Bairro, String Complemento) throws SQLException
	{		
		if(nomeusuario != "")
		{		
			conectar();
			
			comando.executeUpdate( "update pessoa set " +
			"idmonitor = '" + Monitor + "', " +
	        "idadministrador = '" +Administrador + "', " +
	        "nomepessoa = '" +nomeusuario + "', " +	
	        "datanascimentopessoa = '" +Data_Nascimento + "', " +	  
	        "fonepessoa = '" +Telefone + "', " +	
	        "celularpessoa= '" +Celular + "', " +	
	        "emailpessoa = '" +Email + "', " +	
	        "ruapessoa = '" +Logradouro + "', " +	
	        "bairropessoa = '" +Bairro + "', " +	
	        "numeroenderecopessoa = '" +Numero + "', " +	
	        "cpfpessoa = '" +CPF + "', " +	
	        "idhabilitacao = '" +Habilitacao + "', " +	
	        "idtipo = '" +Tipo + "'" +	
	        
	        " where idusuario =  " + idusuario );
					
			visualizarUsuarios.visualizarUsuarios();
		}
	}
	
	/*************************************************************/

    public static Usuario recuperarPessoa(int id) throws SQLException
    {    	
    	conectar();
    	
    	ResultSet reader = comando.executeQuery("select * from pessoa where idusuario = " + id);
    	    	
    	Usuario novo = new Usuario();

        if (reader.next())
        {         
            try
            {
                novo.setid(((int)reader.getInt("idusuario") ));
            }
            catch (Exception e) {
				
			}
            try
            {
                novo.setnome((String)reader.getString("nomepessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setdatanascimento((String)reader.getString("datanascimentopessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setfone((String)reader.getString("fonepessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setcelular((String)reader.getString("celularpessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setemail((String)reader.getString("emailpessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setrua((String)reader.getString("ruapessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setbairro((String)reader.getString("bairropessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setnumeroendereco((int)reader.getInt("numeroenderecopessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setcep((String)reader.getString("cep"));
            }
            catch (Exception e) {}
            try
            {
                novo.setcpf((String)reader.getString("cpfpessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setidhabilitacao((int)reader.getInt("idhabilitacao"));
            }
            catch (Exception e) {}
            try
            {
                novo.setidtipo((int)reader.getInt("idtipo"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setidmonitor((int)reader.getInt("idmonitor"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setidadministrador((int)reader.getInt("idadministrador"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setlogin((String)reader.getString("login"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setsenha((String)reader.getString("senha"));
            }
                        catch (Exception e) {}
        }

        return novo;

    }

    /***************************************************************/

}
